<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <h2>如何确定this的值</h2>
    <script>
        /*
        1.全局执行环境  ，window
        2.函数执行环境
        2.1、函数调用 严格模式 
         this === undefined，非严格模式  this === window
        2.2、对象方法调用 
        都是指向调用者的对象

        3.开启严格模式
        脚本开启，函数内部
        */




        //1.全局执行环境
        //1.1严格模式，非严格模式  this指向window
        // 'use strict'
        // console.log(this)
        //2.函数执行环境
        //2.1、函数调用
        //2.1.1非严格模式  ，window
        function fn1() {
            console.log(this)
        }
        fn1()
        //2.1.2严格模式  , undefined
        function fn() {
            'use strict'
            console.log(this)
        }
        fn()
        //2.2.1对象方法调用,严格模式
        const obj = {
            name: 'why',
            eating() {
                'use strict'
                console.log(this)
            }
        }
        obj.eating() //this 是 {name: 'why', eating: ƒ}
        //2.2.2 对象方法调用,非严格模式

        const obj2 = {
            name: 'why',
            eating() {

                console.log(this)
            }
        }
        obj2.eating()
    </script>
</body>

</html>